#include <stdio.h>
#define MaxSize 100
typedef int DataType;

typedef struct
{
    DataType list[MaxSize];
    int size;
} SeqList;

void ListInitiate(SeqList *L)
{
    L->size = 0;
}

int ListLength(SeqList L)
{
    return L.size;
}

int ListInsert(SeqList *L, int i, DataType x)
{
   int j;
   if(L->size >= MaxSize)
{
   printf("顺序表已满无法插入! \n");
   return 0;
}
else if(i < 0 || i > L->size )
{
   printf("参数i不合法! \n");
   return 0;
}
else
{ //此段程序有错误，已经改正 
   for(j = L->size; j > i; j--) L->list[j] = L->list[j-1];
   L->list[i] = x;
   L->size ++;
    return 1;
}
}

int ListDelete(SeqList *L, int i, DataType *x)
{
   int j;
   if(L->size <= 0)
{
   printf("顺序表已空无数据元素可删! \n");
   return 0;
}
else if(i < 0 || i > L->size-1)
{
   printf("参数i不合法");
   return 0;
}
else
{//此段程序有错误，已经改正 

   *x = L->list[i];
   for(j = i +1; j <= L->size-1; j++) L->list[j-1] = L->list[j];
   L->size--;
   return 1;
}
}

int ListGet(SeqList L, int i, DataType *x)
{
   if(i < 0 || i > L.size-1)
{
   printf("参数i不合法 \n");
   return 0;
}
else
{
   *x = L.list[i];
   return 1;
}
}
int ListSearch(SeqList L,DataType *X) {
}
int main(int argc,char * argv[])
{ SeqList myList;
   int i , x;
   ListInitiate(&myList);
   for(i = 0; i < 10; i++)
   ListInsert(&myList, i, i+1);
   ListDelete(&myList, 4, &x);
for(i = 0; i < ListLength(myList); i++)
{
   ListGet(myList,i,&x); //此段程序有错误,已经改正 
   printf("%d", x);
}
   return 0;
}